export const PASSWORD_REGX = new RegExp('(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{8,30}');
export const EMAIL_PATTERN = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/

const VALIDATE = {
    checkUserName: (rule, value, callback) => {
        if (value.length === 0) {
            callback(new Error('请输入用户名'))
        } else if (value.length < 2) {
            callback(new Error('用户名不能少于2个字符'))
        } else {
            callback()
        }
    },
    checkPassword: (rule, value, callback) => {
        if (value.length === 0) {
            callback(new Error('请输入密码'))
        } else {
            callback()
        }

        // let PASSWORD_REGX=/(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{8,30}/
        // if (!PASSWORD_REGX.test(value)) {
        //     callback(new Error('必须包含大小写字母、数字，长度不少于8位'))
        // } else {
        //     callback()
        // }
    },
    checkVerifyCode: (rule, value, callback) => {
        if (value.length === 0) {
            callback(new Error('请输入验证码'))
        } else if (value.length < 4) {
            callback(new Error('验证码长度不合法'))
        } else {
            callback()
        }

        // let PASSWORD_REGX=/(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{8,30}/
        // if (!PASSWORD_REGX.test(value)) {
        //     callback(new Error('必须包含大小写字母、数字，长度不少于8位'))
        // } else {
        //     callback()
        // }
    },
    checkEmail: (rule, value, callback) => {
        if (!value) {
            return callback(new Error('请输入邮箱地址'));
        }
        if (!EMAIL_PATTERN.test(value)) {
            return callback(new Error('请输入合法的邮箱地址'));
        }
        callback();
    },
    checkIDNumber: (rule, value, callback) => {
        if (!value) {
            return callback(new Error('请输入身份证号码'));
        }
        let pattern = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i;
        if (!pattern.test(value)) {
            return callback(new Error('请输入合法的身份证号码'));
        }
        callback();
    },
    checkPhone: (rule, value, callback) => {
        if (!value) {
            return callback(new Error('请输入固定电话号码'));
        }
        let pattern = /^0\d{2,3}-?\d{7,8}$/;
        if (!pattern.test(value)) {
            return callback(new Error('请输入合法的固定电话号码'));
        }
        callback();
    },
    checkCellPhone: (rule, value, callback) => {
        if (!value) {
            return callback(new Error('请输入手机号码'));
        }
        let pattern = /0?(13|14|15|17|18)[0-9]{9}/;
        if (!pattern.test(value)) {
            return callback(new Error('请输入合法的手机号码'));
        }
        callback();
    },
    checkName: (rule, value, callback) => {
        if (!value) {
            return callback(new Error('请输入真实姓名'));
        }
        if (value.length < 2) {
            return callback(new Error('真实姓名不能少于2个字符'));
        }
        callback();
    },
    checkDepartment: (rule, value, callback) => {
        if (!value) {
            return callback(new Error('请输入单位名称'));
        }
        if (value.length < 2) {
            return callback(new Error('单位名称不能少于2个字符'));
        }
        callback();
    },
    checkLocation: (rule, value, callback) => {
        if (!value) {
            return callback(new Error('请输入单位地址'));
        }
        if (value.length < 5) {
            return callback(new Error('单位地址不能少于5个字符'));
        }
        callback();
    }
}

export default VALIDATE;
